package cn.hyatt.auth.mapper;

import cn.hyatt.auth.dto.systemMenu.SystemMenuFindDto;
import cn.hyatt.auth.entity.SystemMenu;
import cn.hyatt.auth.enums.MenuType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 系统角色
 *
 * @author hyatt
 */
@Mapper
public interface SystemMenuMapper extends BaseMapper<SystemMenu> {
    /**
     * 按列表查找
     *
     * @param dto 查询数据
     * @return 结果
     */
    List<SystemMenu> findByList(@Param("dto") SystemMenuFindDto dto);

    /**
     * 按页面查找
     *
     * @param page 页面数据
     * @param dto  查询数据
     * @return 结果
     */
    IPage<SystemMenu> findByPage(@Param("page") Page<SystemMenu> page, @Param("dto") SystemMenuFindDto dto);

    /**
     * 按菜单类型和角色查找
     *
     * @param types   菜单类型列表
     * @param roleIds 角色Id列表
     * @return 结果
     */
    List<SystemMenu> findByTypeAndRole(@Param("types") List<MenuType> types, @Param("roleIds") List<Long> roleIds);
}
